package work.jame.blog.mapper;

import org.apache.ibatis.annotations.Param;
import work.jame.blog.pojo.Article;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import work.jame.blog.pojo.vo.ArticleSynopsisVO;
import work.jame.blog.pojo.vo.ArticleVO;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author Jame
 * @since 2023-05-17
 */
public interface ArticleMapper extends BaseMapper<Article> {

    /**
     * 查询文章信息和
     * 点赞数,观看数等信息
     * 以及当前用是否点赞,投喂,收藏这篇文章
     *
     * @param articleId 文章id
     * @param userId    当前用户id
     * @return articleVO
     */
    ArticleVO queryArticleInfo(@Param("articleId") Long articleId,
                               @Param("userId") Long userId);


    /**
     * 根据id查询作者id
     *
     * @param articleId 文章id
     * @return 作者id
     */
    Long queryPublisherIdByArticleId(@Param("articleId") Long articleId);


    /**
     * 查询首页文章介绍
     * @param articleTitle 文章标题
     * @param startLine 起始行数
     * @param pageSize 页大小
     * @param orderRule 排序规则 1根据发布时间 2根据阅读数量 3根据点赞数量 4根据投喂米粒数量
     * @return list
     */
    List<ArticleSynopsisVO> queryHomeArticleSynopsis(@Param("articleTitle")String articleTitle,
                                                     @Param("startLine")Long startLine,
                                                     @Param("pageSize")Long pageSize,
                                                     @Param("orderRule")int orderRule);

    /**
     * 查询首页文章介绍总数
     * @param articleTitle 文章标题
     * @return 文章总数
     */
    Long queryHomeArticleSynopsisCount(@Param("articleTitle")String articleTitle);


}
